# -*- coding: utf-8 -*-
# Python中默认的编码格式是 ASCII 格式，在没修改编码格式时无法正确打印汉字，所以在读取中文时会报错。

# 给定一个 n × n 的二维矩阵表示一个图像。
#
# 将图像顺时针旋转 90 度。
#
# 说明：
#
# 你必须在原地旋转图像，这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
#
# 示例 1:
#
# 给定 matrix =
# [
#   [1,2,3],
#   [4,5,6],
#   [7,8,9]
# ],
#
# 原地旋转输入矩阵，使其变为:
# [
#   [7,4,1],
#   [8,5,2],
#   [9,6,3]
# ]
# 示例 2:
#
# 给定 matrix =
# [
#   [ 5, 1, 9,11],
#   [ 2, 4, 8,10],
#   [13, 3, 6, 7],
#   [15,14,12,16]
# ],
#
# 原地旋转输入矩阵，使其变为:
# [
#   [15,13, 2, 5],
#   [14, 3, 4, 1],
#   [12, 6, 8, 9],
#   [16, 7,10,11]


# [1,1]->[1,4]
# [1,2]->[2,4]
# [1,3]->[3,4]
# [1,4]->[4,4]
#
# [2,1]->[1,3]
# [2,2]->[2,3]
# [2,3]->[3,3]
# [2,4]->[4,3]


# 答案
def rotate2(matrix):
    # len(a[0])
    # print(len(a))
    n = len(matrix)
    # Python 这里不能 matrix_new = matrix 或 matrix_new = matrix[:] 因为是引用拷贝
    matrix_new = [[0] * n for _ in range(n)]
    for i in range(n):
        for j in range(n):
            matrix_new[j][n - i - 1] = matrix[i][j]
    # 不能写成 matrix = matrix_new
    matrix[:] = matrix_new
    # return matrix



if __name__ == "__main__":
    list = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
    # print(list[0][3], list[3][0])
    # print(rotate2(list))
    print(rotate2(list))
